I. Field of the Invention
The present invention generally relates to methods and systems for managing the activation of modifications made to application objects. More particularly, the present invention relates to methods and systems for minimizing database access in object-oriented systems by providing a buffer capable of simultaneously storing an inactive version and an active version of an object and by permitting inactive content of an object to be saved to the database.
II. Background Information
Object-oriented systems providing objects, or records, the content of which may be edited by an application, are known in the art. It is also common for a system to associate an object with an object type. An object type may have comprise a set of rules, or an object model, with which an object of that type must comply. Frequently, modifications made to an object are evaluated to determine whether the modifications are consistent with the object model.
Data that has been deemed consistent with the applicable object model is sometimes referred to as “active.” Data that has not yet been deemed consistent is sometimes referred to as “inactive.” A request to modify an object may be referred to as a “request.” The process of determining whether an inactive request is consistent with the applicable object model may be referred to as an “activation protocol.”
An example of an object type may be a payroll information form used by a company to track the payroll information of its employees. In order to ensure that the data is maintained in a uniform and comprehensible manner, the payroll form object type may comprise an object model that dictates which fields of the payroll form are required, as well as the format of acceptable input. A user may modify the content of a particular employee's payroll form, such as by changing the employee's address contained in a “home address” field. Until the update is deemed consistent with the object model, the address change is inactive. Once the request is deemed consistent with the object model, the request may be activated, causing the record to be updated as dictated by the user's request.
Typically, inactive requests to modify an object are stored in a buffer until the user is ready to save changes made to the object to the database. However, activation protocols generally do not allow a user to flush the buffer state without activating any inactive requests. If a request is found to be inconsistent when the user attempts to save the object to the database, the save request will fail and the object will generally be returned to the user, who must alter the request to comply with the object rules before the activation protocol will allow the request to be activated and made persistent on the database. The inability to save inactive content to the database can be burdensome, particularly if the applicable object model includes a large number of required fields or if it includes particularly strict requirements as to content format. In such cases, users may wish to save requested updates to the database without regard to consistency of the current content, and complete their work at a later time. Without the ability to save inactive content, however, the user must first bring the object into a consistent state before saving it to the database.
Further, in systems known in the art, buffers are typically incapable of storing both an inactive version and an active version of an object. As a result, currently known systems typically require buffers to frequently access the database. For example, a buffer may be operative to store only an inactive version of an object, while the active version is stored on the database. If a user desires to roll back inactive requests and return the object to its active state, the buffer may need to access the database to retrieve the active state. This is inefficient, as operations requiring a database access are typically several times slower than operations not requiring database access.